home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 24
/
Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso
/
Aminet
/
dev
/
misc
/
Hunk.lha
/
Hunk
/
Hoppers
/
AmigaLib.hop
< prev
next >
Wrap
Text File
|
1998-02-14
|
9KB
|
182 lines
;*************************************************************************
;** AmigaLib MUL/DIV/MOD **
;** Contributor: L.Lucius Sept 23rd 1995 **
;** Modified for HOp: Thomas Richter (thor) Nov 1st 1997 **
;** Function: Modify 68000 math routines to use 68020+ instructions. **
;*************************************************************************
#match
#code
0C82 0000 FFFF ; CMPI.L #0000FFFF,D2
6E18 ; BGT.B 0020
3241 ; MOVEA.W D1,A1
4241 ; CLR.W D1
4841 ; SWAP D1
82C2 ; DIVU.W D2,D1
2001 ; MOVE.L D1,D0
4841 ; SWAP D1
3009 ; MOVE.W A1,D0
80C2 ; DIVU.W D2,D0
3200 ; MOVE.W D0,D1
4240 ; CLR.W D0
4840 ; SWAP D0
4E75 ; RTS
2001 ; MOVE.L D1,D0
4240 ; CLR.W D0
4840 ; SWAP D0
4841 ; SWAP D1
4241 ; CLR.W D1
2242 ; MOVEA.L D2,A1
740F ; MOVEQ #0F,D2
D281 ; ADD.L D1,D1
D180 ; ADDX.L D0,D0
B3C0 ; CMPA.L D0,A1
6E04 ; BGT.B 003A
9089 ; SUB.L A1,D0
5241 ; ADDQ.W #1,D1
51CA FFF2 ; DBF D2,002E
4E75 ; RTS
2F02 ; MOVE.L D2,-(A7)
2400 ; MOVE.L D0,D2
C4C1 ; MULU.W D1,D2
2042 ; MOVEA.L D2,A0
2400 ; MOVE.L D0,D2
4842 ; SWAP D2
C4C1 ; MULU.W D1,D2
4841 ; SWAP D1
C0C1 ; MULU.W D1,D0
D082 ; ADD.L D2,D0
4840 ; SWAP D0
4240 ; CLR.W D0
D1C0 ; ADDA.L D0,A0
2008 ; MOVE.L A0,D0
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
2F02 ; MOVE.L D2,-(A7)
2401 ; MOVE.L D1,D2
2200 ; MOVE.L D0,D1
6198 ; BSR.B 0000
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
2F02 ; MOVE.L D2,-(A7)
2401 ; MOVE.L D1,D2
2200 ; MOVE.L D0,D1
618C ; BSR.B 0000
2001 ; MOVE.L D1,D0
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
2F02 ; MOVE.L D2,-(A7)
2401 ; MOVE.L D1,D2
6C02 ; BGE.B 0082
4482 ; NEG.L D2
2200 ; MOVE.L D0,D1
7000 ; MOVEQ #00,D0
4A81 ; TST.L D1
6C04 ; BGE.B 008E
4481 ; NEG.L D1
4680 ; NOT.L D0
2040 ; MOVEA.L D0,A0
6100 FF6E ; BSR.W 0000
3408 ; MOVE.W A0,D2
6702 ; BEQ.B 009A
4480 ; NEG.L D0
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
2F02 ; MOVE.L D2,-(A7)
2040 ; MOVEA.L D0,A0
7000 ; MOVEQ #00,D0
2401 ; MOVE.L D1,D2
6C04 ; BGE.B 00AC
4482 ; NEG.L D2
4680 ; NOT.L D0
2208 ; MOVE.L A0,D1
6C04 ; BGE.B 00B4
4481 ; NEG.L D1
4680 ; NOT.L D0
2040 ; MOVEA.L D0,A0
6100 FF48 ; BSR.W 0000
2408 ; MOVE.L A0,D2
6702 ; BEQ.B 00C0
4481 ; NEG.L D1
2001 ; MOVE.L D1,D0
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
;
;
#replace
0C82 0000 FFFF ; CMPI.L #0000FFFF,D2
6E18 ; BGT.B 0020
3241 ; MOVEA.W D1,A1
4241 ; CLR.W D1
4841 ; SWAP D1
82C2 ; DIVU.W D2,D1
2001 ; MOVE.L D1,D0
4841 ; SWAP D1
3009 ; MOVE.W A1,D0
80C2 ; DIVU.W D2,D0
3200 ; MOVE.W D0,D1
4240 ; CLR.W D0
4840 ; SWAP D0
4E75 ; RTS
2001 ; MOVE.L D1,D0
4240 ; CLR.W D0
4840 ; SWAP D0
4841 ; SWAP D1
4241 ; CLR.W D1
2242 ; MOVEA.L D2,A1
740F ; MOVEQ #0F,D2
D281 ; ADD.L D1,D1
D180 ; ADDX.L D0,D0
B3C0 ; CMPA.L D0,A1
6E04 ; BGT.B 003A
9089 ; SUB.L A1,D0
5241 ; ADDQ.W #1,D1
51CA FFF2 ; DBF D2,002E
4E75 ; RTS
4C01 0000 ; MULU.L D1,D0
4E75 ; RTS
2042 ; MOVEA.L D2,A0
2400 ; MOVE.L D0,D2
4842 ; SWAP D2
C4C1 ; MULU.W D1,D2
4841 ; SWAP D1
C0C1 ; MULU.W D1,D0
D082 ; ADD.L D2,D0
4840 ; SWAP D0
4240 ; CLR.W D0
D1C0 ; ADDA.L D0,A0
2008 ; MOVE.L A0,D0
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
4C41 0001 ; DIVUL.L D1,D1:D0
C340 ; EXG D1,D0
4E75 ; RTS
241F ; MOVE.L (A7)+,D2
4E75 ; RTS
4C41 0001 ; DIVUL.L D1,D1:D0
4E75 ; RTS
618C ; BSR.B 0000
2001 ; MOVE.L D1,D0
241F